iT邦幫忙

2024 iThome 鐵人賽

DAY 28
2
DevOps

後 Grafana 時代的自我修養系列 第 28

後 Grafana 時代的第二十八天 - 探討 Grafana OnCall 告警待命通知管理

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20241012/20149562dF9o2qipdG.png

前言

在之前探討告警事件中心的章節中,我們已經對 Prometheus AlertManager 和 Grafana Alerting 有了基本的了解。雖然這兩者各自具有不同的功能,但它們的定位都是為了解決告警事件的處理與分發問題。本次要介紹的 Grafana OnCall 則提供了另一種解決方案。它專注於將通知精準地傳達給告警事件的關鍵回應者,也就是在事件發生時,能夠快速且即時地通知相關人員。這正是我們反覆強調的,用來解決告警風暴和告警疲勞問題的有效手段之一。

Grafana OnCall 介紹

https://ithelp.ithome.com.tw/upload/images/20241012/20149562ZXTIhUeQZq.png

如果要提到 Grafana OnCall 與 Grafana Alerting 的差別時,一開始接觸兩者的人可能會覺得兩者很像,都是用來處理告警通知的系統。不過,Grafana OnCall 與 Grafana Alerting 的定位不同,Grafana OnCall 是專門用來處理告警通知的系統,而 Grafana Alerting 則是專門用來處理告警事件的系統。

簡而言之,Grafana OnCall 是專注於使用各種靈活的通知管道,如 Slack ChatBot、Email、SMS 等,將告警通知道最合適的回應者,而這角色有可能是正在值班一線值班人員、SRE 甚至是 CEO。都是 Grafana OnCall 告警事件持續升級後的可能角色。

聯絡人(User)

https://ithelp.ithome.com.tw/upload/images/20241012/20149562LFQKPY8PEu.png

正如我們說到的,Grafana OnCall 是專注於使用各種靈活的通知管道,將告警通知道最合適的回應者。而聯絡人設定就是我們在 Grafana OnCall 中定義的告警事件回應者所有預定義的通知管道方式。不論是手機、Email、各式通訊軟體與 Google Calendar 等,都可以在聯絡人設定中進行設定。並且還能夠進一步區分通知等級,使通知人員能夠在不同嚴重程度的告警事件中收到不同等級的通知。

Note: 在 Grafana OnCall 中的聯絡人與團隊權限,皆統一由 Grafana 原生的 User & Team 進行整合管理。

告警組(Alert Group)

https://ithelp.ithome.com.tw/upload/images/20241012/20149562VTtnQQRZ1S.png

告警組是可以按照我們自己定義分組的相關告警事件的集合,如此一來我們可以快速識別問題,降低告警轟炸雜亂無章的情況。

https://ithelp.ithome.com.tw/upload/images/20241012/20149562gW0bc1xfJ0.png

在被聚合過的告警組頁面中,我們可以快速檢視到各個告警事件的詳細資訊,包含告警事件的發生時間、持續時間、告警事件的嚴重程度、告警事件的回應者等。對於事件做出快速反應,也就是我們前面提到的形成良性告警閉環。當我們發現告警事件沒辦法在由值班人員第一時間處理時,我們可以快速的在告警組中通知對應人員,而不需要再另外透過其他管道工具通知。

整合(Integration)

https://ithelp.ithome.com.tw/upload/images/20241012/20149562b8yrO2uhkE.png

Grafana OnCall 的整合(Integration)是與其他系統進行交互的橋樑,允許 OnCall 與多種不同的服務和平台進行集成。可以看到 Grafana OnCall 已經可以與大多數的告警系統進行整合,包含 Prometheus AlertManager、Loki、Mimir 等。不僅如此,它更是 Grafana Alerting 中的一等公民,可以與 Alerting 直接無縫整合。

https://ithelp.ithome.com.tw/upload/images/20241012/20149562InqXF9Yhlp.png

在整合設定頁面中,我們可以透過 jinja2 模板語言來取得關鍵子眼進行判斷,對告警事件進行進階路由的處理。而這裡的路由將會決定我們期望使用哪一條告警升級鏈或將告警事件發送到哪一個 Slack ChatOps 群組,由回應者在 Slack 平台中統一進行告警事件的處理。

https://ithelp.ithome.com.tw/upload/images/20241012/20149562x8JtQrlOFw.png

Slack ChatOps 和 Mobile App

Grafana OnCall 同時還提供了 Mobile App 和 Slack ChatOps 功能,進一步提升了團隊對告警事件的響應速度和協作效率。

https://ithelp.ithome.com.tw/upload/images/20241012/20149562bIM2qaKwJn.png

Mobile App:Grafana OnCall 的行動應用程式讓值班人員能夠隨時隨地接收告警通知,無論是在 iOS 還是 Android 裝置上,都可以即時獲取關鍵事件的資訊。透過行動應用程式,團隊成員可以:

  • 即時通知:在事件發生時,立即收到推播通知,確保不會錯過任何重要告警。
  • 一鍵回應:快速確認、接手或註解告警事件,加速問題解決。
  • 值班管理:查看個人或團隊的值班計畫,了解誰正在值班或即將值班。
  • 事件詳情:查看告警的詳細資訊,包括事件描述、時間軸和相關的指標數據。

https://ithelp.ithome.com.tw/upload/images/20241012/20149562Rn9eP4U8r1.png

透過與 Slack 的深度整合,Grafana OnCall 將告警通知和團隊協作無縫結合。Slack ChatOps 功能使得團隊可以:

  • 告警通知:在指定的 Slack 頻道中接收告警事件通知,讓整個團隊同步了解情況。
  • 互動式操作:直接在 Slack 中對告警進行操作,如確認、註解或升級事件,無需切換到其他應用程式。
  • 即時協作:團隊成員可以在告警通知下方討論問題,分享見解,協同解決事件。
  • 自訂通知規則:根據告警的類型、嚴重程度或標籤,將通知路由到不同的 Slack 頻道或使用者。

升級鏈(Escalation Chain)

https://ithelp.ithome.com.tw/upload/images/20241012/20149562wqkVghQPw9.png

升級鏈(Escalation Chain)是 Grafana OnCall 中用於處理告警事件升級的機制。當告警事件發生時,我們可以透過升級鏈將事件升級給下一個回應者,或直接發送給指定的回應者,避免告警事件處理的延誤。

這種升級鏈的概念在中大型公司中相當常見。像 AWS 這樣的網路巨擘,擁有數百個團隊,但也不是越多層級越細膩的升級鏈就不會遇到麻煩,據傳近年來甚至出現過告警事件升級到 CEO 收到通知的情況。

待命管理(Schedules)

https://ithelp.ithome.com.tw/upload/images/20241012/20149562sOGyVRFFAg.png

待命管理(Schedules)是 Grafana OnCall 中用於管理團隊成員的待命安排的機制。我們可以透過行事曆的方式來定義團隊成員的待命時間,以及在非待命時間的待命狀態。如此一來,我們可以確保在團隊成員的待命時間內,有專人員可以處理告警事件,避免告警事件無人問津的情況,這也是我們不斷強調減輕告警疲勞的關鍵實踐方式。

https://ithelp.ithome.com.tw/upload/images/20241012/20149562fPER6l73bL.png

Grafana OnCall 是社群上少數開源的強大待命管理系統,不僅可以與 Grafana 無縫整合,更可以與 Grafana Alerting 進行整合,提供更為精確的待命管理。功能不僅能夠與 Google Calendar 進行整合,並且還可以對於待命人員做出更細緻的排班管理操作,如覆蓋排班、調班等等。

https://ithelp.ithome.com.tw/upload/images/20241012/20149562y2H4EVRyAq.png

看吧,馬上又輪到我 oncall 了。

告警事件見解(Insights)

https://ithelp.ithome.com.tw/upload/images/20241012/20149562niMrrYL8Xz.png

Grafana OnCall 提供了一個名為 Insights 的頁面,專門用於分析和呈現告警的見解和關鍵指標。透過這個頁面,團隊可以直觀地查看告警的統計數據,例如平均修復時間(MTTR)、告警頻率、回應時間等。

這個頁面能夠幫助團隊:

  • 識別告警模式:了解哪些告警最為頻繁,哪些時間段告警最多,從而找出系統中的薄弱環節。
  • 評估告警處理效率:透過 MTTR 等指標,評估團隊對告警的回應速度和問題解決效率。
  • 優化值班計劃:根據告警數據,調整值班人員的安排,確保高峰期有足夠的人力資源。
  • 改進告警策略:分析重複性或無效的告警,調整告警規則,減少告警疲勞。

透過對這些關鍵指標的深入分析,Insights 頁面協助團隊持續優化告警管理流程,提升事件響應速度,從而提高整體系統的穩定性和可靠性。

Grafana OnCall 與其它告警待命管理方案

Grafana OnCall 是由 Grafana Labs 推出的開源告警管理和值班調度工具,旨在為團隊提供高效的告警通知、事件升級和值班排程管理。它與 Grafana 的監控平台深度整合,適合希望在同一平台上管理監控和告警的團隊。

PagerDuty

https://ithelp.ithome.com.tw/upload/images/20241012/20149562Zw3BWjLPTj.png

PagerDuty 是一款許多人耳熟能詳且在這個待命管理系統中處於領先地位的商業級事件響應和告警管理平台,提供強大的功能,包括複雜的值班排程、事件升級、豐富的通知渠道和深度的報告分析。

PagerDuty 提供更高級的事件管理功能,可以作為完全獨立的 IT 運營管理系統,但費用也是相當昂貴,對於中小型團隊來說,可能會是一個不小的負擔。相較於 Grafana OnCall 來說,其將重心放在告警事件通知與團隊協作。

OpsGenie

https://ithelp.ithome.com.tw/upload/images/20241012/20149562dLqH6FTpuZ.png

OpsGenie 則是大名鼎鼎的 JIRA 的母公司 Atlassian 推出的告警管理解決方案,提供全面的告警路由、事件管理、通知和協作功能。OpsGenie 與 JIRA Service Management 和 Atlassian 的其他產品深度整合,適合希望在單一平台上管理 IT 運營和事件響應的團隊。

同樣的,OpsGenie 也是一款相對昂貴的解決方案(但比 PagerDuty 便宜一些),對於擁有廣大中小型團隊用戶的 Atlassian 來說,使用者相對願意直接使用 OpsGenie 來與 JIRA 進行整合。

結語

經過我們初步的介紹後,我們可以了解 Grafana OnCall 是一款相對輕量級的告警管理和值班調度工具,非常適合希望在 Grafana 上進行深度整合的團隊。相較於 PagerDuty 和 OpsGenie 這些專業的告警管理平台,Grafana OnCall 的優勢在於其與 Grafana 的深度整合,以及其開源的特性。

由於篇幅不夠,無法帶領大家體驗 Grafana OnCall 的實戰體驗,不然個人覺得擁有 Mobile App 和 Slack ChatOps 的助力,真的降低不少在 oncall 時的心力憔悴。但我希望這篇文章能夠幫助你們初步了解 Grafana OnCall 的定位與優勢。如果你對 Grafana OnCall 感興趣,也可以敲碗讓我知道!


上一篇
後 Grafana 時代的第二十七天 - 探討 Grafana Alerting 告警歷史與列表
下一篇
後 Grafana 時代的第二十九天 - 探討 Grafana 告警事件中心架構設計
系列文
後 Grafana 時代的自我修養31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言